¬local BFC = LibStub("AceAddon-3.0"):GetAddon("BigFootChat") local L = LibStub("AceLocale-3.0"):GetLocale("BigFootChat") local optGetter, optSetter do
function optGetter(info) local key = info[#info] return BFC.db.profile[key]
end function optSetter(info, value) local key = info[#info] BFC.db.profile[key] = value BFC:Refresh()
end
end local options, moduleOptions = nil, {} local function getOptions() if not options then
options = { type = "group", name = L.BFChatTitle, args = { general = { order = 1, type = "group", name = L.BFChat, get = optGetter, set = optSetter, args = { intro = { order = 1, type = "description", name = L["BFChat provides you convient tools like copy text, name highlight and timestamps"], }, enablecopy = { order = 2, type = "toggle", name = L["Enable copy text"], width = "full", }, enableOldChatFrameStyle = { order = 3, type = "toggle", name = L["Enable Old style Style"], width = "full", }, timestampheader = { order = 4, type = "header", name = L["Timestamp setting"], }, enabletimestamp = { order = 5, type = "toggle", name = L["Enable timestamp"], width = "full", get = function () if GetCVar("showTimestamps") == "none" then
return false
else
return true
end
end, set = function (...) local _, flag = ... if flag then
SetCVar("showTimestamps", "%I:%M %p") CHAT_TIMESTAMP_FORMAT = "%I:%M %p"
else
SetCVar("showTimestamps", "none") CHAT_TIMESTAMP_FORMAT = nil
end
end }, classheader = { order = 12, type = "header", name = L["Class setting"], }, enableclasscolor = { order = 13, type = "toggle", name = L["Enable Class Color"], width = "full", set = function (...) local _, flag =... if flag then
BFC:MaskSystemColoring(true) else
BFC:MaskSystemColoring(false)
end BFC.db.profile.enableclasscolor = flag
end, get = function () return BFC.db.profile.enableclasscolor
end }, channelheader = { order = 14, type = "header", name = L["Channel setting"], }, useshortname = { order = 18, name = L["Use short channel names"], type = "toggle", width = "full", }, enablechatchannelmove ={ order = 20, type = "toggle", name = L["Enable channel buttons move"], }, }, }, }, } for k, v in pairs(moduleOptions) do options.args[k] = (type(v) == "function") and v() or v
end
end return options
end function BFC:ShowOptions() LibStub("AceConfigDialog-3.0"):Open("BigFootChat");
end function BFC:SetupOptions() self.optionsFrames = {} LibStub("AceConfigRegistry-3.0"):RegisterOptionsTable("BigFootChat", getOptions) self:RegisterModuleOptions("Profiles", LibStub("AceDBOptions-3.0"):GetOptionsTable(self.db), "Profiles") self:Refresh()
end function BFC:RegisterModuleOptions(name, optionTbl, displayName) moduleOptions[name] = optionTbl
end
